package com.desksoft.ecommerce.service.interf.mall;

import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import com.desksoft.ecommerce.entity.mall.dto.Helpcodeinfo;
import com.desksoft.ecommerce.util.result.ServiceResult;
import com.desksoft.ecommerce.vo.mall.ArticleInfoQryVO;
import com.desksoft.ecommerce.vo.mall.ArticlecategoryVO;
import com.desksoft.ecommerce.vo.mall.ArticleinfoVO;
import com.desksoft.ecommerce.vo.mall.CategoryNodeVO;
import com.desksoft.ecommerce.vo.mall.HelpInfoVO;
import com.desksoft.utility.pagination.Page;
import com.desksoft.utility.service.ServiceInterface;

/**
 * 处理收获地址公共方法
 * 
 * @param
 * @param
 * @return
 */
public interface IArticleService extends ServiceInterface {

	/**
	 * 获取帮助分类
	 * @param Helpinfo
	 * @param zoneVO
	 * @return
	 */
	public ServiceResult<List<Helpcodeinfo>> getHelpcodeInfo( Helpcodeinfo Helpcodeinfo );
	
	/**
	 *   获取相应分类下的文章名称
	 * @param helpInfoVO
	 * @return
	 */
	public ServiceResult<List<HelpInfoVO>> getHelpInfoTitle(HelpInfoVO helpInfoVO);

	/**
	 * 根据文章ID获取文章内容
	 * @param helpInfoVO
	 * @return
	 */
	public ServiceResult<HelpInfoVO> getArticleContent(HelpInfoVO helpInfoVO);

	/**
	 * 获取文章的分类信息
	 * @return ServiceResult<List<CategoryNodeVO>> 
	 */
	public ServiceResult<List<CategoryNodeVO>> getArticleCategory(ArticlecategoryVO articlecategoryVO);
	
	/**
	 * @Description: 查询指定类下的 文章列表
	 * @param @param articlecategoryVO
	 * @return ServiceResult<List<ArticleinfoVO>> 
	 * @date 2013-3-28 下午04:09:13
	 */
	public ServiceResult<Page<ArticleinfoVO>>  queryArticleInfoList( ArticleInfoQryVO articleInfoQryVO );
	
	/**
	 * @Description: 根据编号找出该文章分类下的信息  和他的所有上级分类信息
	 * @param @param articleInfoQryVO
	 * @return ServiceResult<ArticlecategoryVO> 
	 * @date 2013-4-3 下午04:09:28
	 */
	public ServiceResult<ArticlecategoryVO> getArticleCategoryDetail( ArticlecategoryVO articlecategoryVO );
	
	/**
	 * @Description: 查询全部文章信息
	 * @return ServiceResult<Page<ArticleinfoVO>> 
	 * @date 2013-4-4 下午02:27:32
	 */
	public ServiceResult<Page<ArticleinfoVO>> queryArticleInfoListAll( ArticleInfoQryVO articleinfoQryVO );
	
	/**
	 * @Description: 删除该分类的所有信息
	 * @param @param ArticlecategoryVO
	 * @date 2013-4-4 下午04:04:18
	 */
	public ServiceResult<Boolean> delateArticleInfoSubCategory( ArticlecategoryVO articlecategoryVO );
	
	/**
	 * @Description: 修改指定分类的信息
	 * @param @param articlecategoryVO
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-4 下午05:13:44
	 */
	public ServiceResult<Boolean> modifyCategory( ArticlecategoryVO articlecategoryVO );
	
	
	/**
	 * @Description: 新增一条新的 分类记录
	 * @param @param articlecategoryVO
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-7 下午03:54:25
	 */
	public ServiceResult<Boolean> addArticleCategory( ArticlecategoryVO articlecategoryVO );

	/**
	 * @Description: 根据用户过户输入的关键字 文章状态 、或者编号 查询 
	 * @param @param articleinfoQryVO
	 * @return ServiceResult<Page<ArticleinfoVO>> 
	 * @date 2013-4-8 上午08:59:17
	 */
	public ServiceResult<Page<ArticleinfoVO>> searchCustomerArticleInfo(ArticleInfoQryVO articleinfoQryVO);
	
	/**
	 * @Description: 批量删除文章信息
	 * @param @param object
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-8 下午03:55:16
	 */
	public ServiceResult<Boolean> delateBatchArticleInfo( List<Object[]> object );
	
	/**
	 * @Description: 批量修改文章信息
	 * @param @param object
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-8 下午03:55:16
	 */
	public ServiceResult<Boolean> modifyButhArticleInfo( List<Object[]> object );
	
	/**
	 * @Description: 查询当前占点下的文章分类信息
	 * @return ServiceResult<List<ArticlecategoryVO>> 
	 * @date 2013-4-8 下午05:53:16
	 */
	public ServiceResult<List<ArticlecategoryVO>> queryArticleCategoryCurrent( Integer siteid );
	
	/**
	 * @Description: 修改文章的排序
	 * @param @param object
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-8 下午06:50:48
	 */
	public ServiceResult<Boolean> updateButhArticleInfo( List<Object[]> object );
	
	/**
	 * @Description: 查询指定的文章信息编辑
	 * @param @param infoQryVo
	 * @return ServiceResult<ArticleinfoVO> 
	 * @date 2013-4-9 上午11:07:35
	 */
	public ServiceResult<ArticleinfoVO> searchArticleInfoEditor(ArticleInfoQryVO infoQryVo);
	
	/**
	 * @Description: 修改文章信息
	 * @param @param infovo
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-9 下午02:26:30
	 */
	public ServiceResult<Boolean> editorArticleInfo( ArticleinfoVO infovo );
	
	/**
	 * @Description: 新加文章
	 * @param @param infovo
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-9 下午03:23:41
	 */
	public ServiceResult<Boolean> addNewArticleInfo( ArticleinfoVO infovo );
	
	/**
	 * @Description: 查询指定站点下的分类信息
	 * @param @param categoryVO
	 * @return ServiceResult<Map<String,Object>> 
	 * @date 2013-4-9 下午07:35:42
	 */
	public ServiceResult<Map<String, LinkedHashMap<String,List<ArticlecategoryVO>>>> queryArticleCategoryBySietID( ArticlecategoryVO categoryVO );

	/**
	 * @Description: 移动文章信息
	 * @param @param listObj
	 * @return ServiceResult<Boolean> 
	 * @date 2013-4-10 下午12:42:18
	 */
	public ServiceResult<Boolean> updateButhArticleInfoMove( List<Object[]> listObj );
	
	/**
	 * @description 查询指定category下面的分类和对应分类下的文章信息
	 * @param qryVO
	 */
	public ServiceResult<Map<String, Map<String, List<ArticleinfoVO>>>> queryHelpCenterArticleInfoList( ArticleInfoQryVO qryVO );

	/**
	 * @Description: 仅仅查询出当前分类下的 文章列表信息
	 * @param articleinfoVO.CategoryID
	 * @return List<ArticleinfoVO> 
	 * @date 2013-3-28 下午04:17:15
	 */
	public ServiceResult<List<ArticleinfoVO>> queryCurrCategoryArticleInfoList( ArticleInfoQryVO articleInfoQryVO) ;
}
